perm filename COMT.PAL[HAL,HE]9 blob
sn#193349 filedate 1975-12-15 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Test of condition monitors
C00004 00003 SMALL TEST OF ARITHMETIC
C00006 00004 Test of graph structure: calculators
C00009 00005 Test of graph structure: changers
C00010 00006 test of global declarations
C00011 00007 TEST OF FORCE MONITORS
C00012 00008 TEST OF SSBRTNS
C00013 00009 Test of force monitoring with motion
C00018 00010 Test of parallel code
C00019 00011 SMALL TEST OF VARIABLE DECLARATIONS
C00020 ENDMK
C⊗;
; Test of condition monitors
COMMENT ⊗
XPRINT
L45 ;Say hello
XCMMAK
20 ;CM at 20
L30 ;Code at L30 for c-m
XMVAR ;
10 ;X
12 ;y
0
XPUSH ;X ← L41
L41
XCHNGE
10
XPUSH ;Y ← L41.5 (= 0)
L41.5
XCHNGE
12
XCMENB ;Enable checker
20
L32: XGTVAL ;X ← X - 1
10 ;
XCOPY ;
0
XPRNTS ;Say what X is
XPUSH ;
L43 ;Push 1
XSSUB ;Subtract
XCHNGE ;
10 ;
XGTVAL ;
12 ;Y=0?
XJUMPC ;
2 ;
L32 ;If so, loop
XCMDEST ;else get rid of checker
20 ;
0
XTERMINATE;and go away
L30: XCMSKED ;Checker body
XPRINT ;Say "."
L46 ;
XGTVAL ;X≤0?
10 ;
XJUMPC ;
7 ;if GT then jump
L30 ;
XCMTRIG ;Yes. trigger
XPRINT
L44 ;Say "zero"
XPUSH ;
L41 ;SET Y ← 10.0
XCHNGE ;
12 ;
XJUMP ;
L30 ;
;data area
L41: 41040 ;10.0
0
L41.5: 0 ;0.0
0
L42: ASCIE </
DECREMENTING/>
L43: 40200 ;1.0
0
L44: ASCIE </
ZERO/>
L45: ASCIE </
TEST OF CONDITION CHECKERS
/>
L46: ASCIE </./>
⊗
; SMALL TEST OF ARITHMETIC
COMMENT ⊗
L1: XMVAR
10 ;X
12 ;Y
14 ;Z
16 ;W
0
XPUSH ;X ← L103
L103
XCHNGE
10
XPUSH ;Y ← L105
L105
XCHNGE
12
XPUSH ;Z ← L107
L107
XCHNGE
14
XGTVAL ;W ← X . Y . Z
10
XGTVAL
12
XGTVAL
14
L2: XVMAKE
XCHNGE
16
XPRINT ;
A1 ;
XVARPRN ;
16 ;W
XTERMINATE
L103: ;VECTOR(44.5, 44.5, 44.5, 2)
41462
0
41462
0
41462
0
40400
0
L105: ;VECTOR(10, 10, 10, 1)
41040
0
41040
0
41040
0
40200
0
L107: ;VECTOR(20, 20, 20, 1)
41240
0
41240
0
41240
0
40200
0
A1: ASCIE /W = /
;⊗
; Test of graph structure: calculators
COMMENT ⊗
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMEXP ;EXPR(X + Y)
20 ;neededs
22 ;
0 ;
L10 ;code
30 ;offset
XMCLC ;
30 ;Expr
24 ;Z <= EXPR
XMCLC ;
30 ;Expr
26 ;W <= EXPR
XMEXP ;W <= Z
24 ;neededs
0 ;
L11 ;code
34 ;offset
XMCLC ;
34 ;Expr
26 ;W
XGTVAL ;Print W
26 ;
XPRNTS ;
XKVAR ;
20 ;
0 ;
XDCLC ;
34 ;
26 ;W
XKVAR ;
22 ;
24 ;
26 ;
0 ;
XTERMINATE
L10: XGTVAL ;X
20 ;
XGTVAL ;Y
22 ;
XSADD ;+
XENDCLC ;
L11: XGTVAL ;Z
24 ;
XENDCLC ;
L1: 40200 ;1
0
;⊗
; Test of graph structure: changers
COMMENT ⊗
XMVAR
20 ;X
22 ;Y
24 ;Z
26 ;W
0 ;
XPUSH ;X ← 1
L1 ;
XCHNGE ;
20 ;
XPUSH ;Y ← 1
L1 ;
XCHNGE ;
22 ;
XMCHG ;WHEN CHANGE X DO [Z ← NEW-OLD; PRINT Z]
20 ;
L10 ;code
XMCHG ;WHEN CHANGE Z DO [PRINT Z]
24 ;
L11 ;code
XPUSH ;X ← 10
L2 ;
XCHNGE ;
20 ;
XTERMINATE
L10: XGTNEW ;
XGTOLD ;
XSSUB ;-
XCOPY ;
0
XPRNTS ;
XCHNGE ;
24 ;Z
XTERMINATE
L11: XGTVAL ;
24 ;Z
XPRNTS ;
XTERMINATE
L1: 40200 ;1
0
L2: 41040 ;=10
0
⊗
; test of global declarations
COMMENT ⊗
XMVAR ;
20 ;X
0 ;
XPUSH ;
L1 ;1.0
XCHNGE ;
20 ;X
XGLBLNK ;
24 ;Z
11111 ;
17777 ;
XGLBLNK ;
26 ;Z1
21111 ;
17777 ;
XGLBLNK ;
30 ;Z1
21111 ;
17777 ;
XGTVAL ;
20 ;X
XCHNGE ;
26 ;Z
XGTVAL ;
30 ;Z
XPRNTS ;
XKVAR ;
20 ;X
XBREAK ;
XTERMINATE
L1: 40200 ;1.0
0
⊗
; TEST OF FORCE MONITORS
COMMENT ⊗
XPUSH ;
L1 ;vector
XPUSH ;
L1 ;vector
XMAKFORCE
20 ;F
1 ;yellow arm
XGETFORCE ;
20
XPRNTS ;
XBRACE ;
XDESFORCE ;
20 ;
XTERMINATE ;
L1: 40200 ;
0
40400 ;
0
40600 ;
0 ;
⊗
; TEST OF SSBRTNS
COMMENT ⊗
XPUSH
L1 ;4.0
XSSBRTN
1 ;SQRT
XPRNTS ;
XTERMINATE
L1: 40600 ;
0 ;
⊗
;Test of force monitoring with motion
COMMENT ⊗
;PROG
XMVAR
10
12
14
16
0
;BLOCK
XMVAR
;$B1.DEST
22
;$B1.STAND
24
;$B1.DUMMY
26
;$B1.S
30
0
XPUSH
L20 ;force (0 10 0)
XPUSH
L21 ;moment (all zeroes)
XMAKFORCE
34 ;FORCE VARIABLE
4 ;blue arm
XJUMP
L22
L20: 0
0
41040
0
0
0
L21: 0
0
0
0
0
0
;Condition monitor checker
L2: XCMSKED
144
XCMTRIG
XGETFORCE ;
34
XPRNTS ;JUST SAY IT
XCMENB ;
32 ;reenable
XJUMP
L2
;Create condition monitor
L22: XCMMAK
32
0
L2
XCMENB
32 ;enable him
;Assignment
XPUSH
L4
;$B1.STAND
XCHNGE
24
;Assignment
XPUSH
L5
;BARM
XCHNGE
14
;Assignment
XPUSH
L6
;$B1.DEST
XCHNGE
22
;MOVE
XMOVE
L7
;MOVE
XMOVE
L11
;Block end cleanup
XKVAR
22
24
26
30
0
XCMDES
32
0
XDESFORCE
34 ;FORCE VARIABLE
;END BLOCK
;END PROG
XKVAR
10
12
14
16
0
XTERMINATE
;Motion table
L7: 770
0
0
;Relative segment pointer
310
2774
L11
0
;Coefficients, gravity, inertia
42064
2474
0
0
0
0
142566
110003
42670
166002
142423
170002
141664
130770
0
0
0
0
137536
2000
37646
101000
137405
33000
41140
26676
0
0
0
0
141003
117156
41105
66644
140635
170520
141664
0
0
0
0
0
0
0
0
0
0
0
41663
47010
0
0
0
0
137536
2000
37646
101000
137405
33000
36634
163754
0
0
0
0
142566
107457
42670
165543
142423
167603
0
0
47126
110677
42444
146375
47330
70072
140151
65472
44754
142200
0
0
46073
64100
137107
173154
46015
107110
0
0
45130
123200
0
;End of motion table
;Motion table
L11: 770
0
0
;Relative 3egment po)nter
310
2774
0
0
;Coefficients, gravity, inertia
41642
145166
0
0
0
0
42566
110003
142670
166002
42423
170002
141664
136421
0
0
0
0
37536
2000
137646
101000
37405
33000
41123
2115
0
0
0
0
41003
117156
141105
66644
40635
170520
141664
0
0
0
0
0
0
0
0
0
0
0
41663
41357
0
0
0
0
37536
2000
137646
101000
37405
33000
141705
32612
0
0
0
0
42566
107457
142670
165543
42423
167603
0
0
47132
37034
42513
44174
47332
43145
140132
152222
44754
142200
0
0
46073
64111
137107
173156
46015
107110
0
0
45130
123200
0
;End of motion table
L3: 40200
0
L4: 40200
0
0
0
0
0
0
0
0
0
140200
0
32711
7733
0
0
0
0
132711
7733
140200
0
0
0
0
0
0
0
0
0
0
0
L5: 40200
0
0
0
0
0
0
0
0
0
140200
0
0
0
0
0
0
0
0
0
140200
0
0
0
41456
24366
41543
70244
41053
127025
0
0
L6: 40200
0
0
0
0
0
0
0
0
0
140200
0
0
0
0
0
0
0
0
0
140200
0
0
0
41406
24366
41473
70244
41053
127025
0
0
;Trans pointer for motion
L10: 22
0
;⊗
;Test of parallel code
COMMENT ⊗
XMAKEVT
20
0
XSPROUT
L1
L2
L3
0
XTERMINATE
L1: XNOOP
XWAITE
20
XNOOP
XTERMINATE
L2: XNOOP
XWAITE
20
XNOOP
XTERMINATE
L3: XNOOP
XSIGNAL
20
XSIGNAL
20
XNOOP
XTERMINATE
;⊗
; SMALL TEST OF VARIABLE DECLARATIONS
COMMENT ⊗
L1: XMVAR
10
12
14
0
XKVAR
12
0
XPUSH
L2
XCHNGE
10
XGTVAL
10
XCHNGE
14
XTERMINATE
L2: 7777
6666
;⊗